The present invention relates generally to the field of task management or control, and more particularly to process scheduling.
A central processing unit (“CPU”) scheduler gives system resource access to threads and processes. The CPU dispatcher performs load balancing for processes running on a set of processors. Memory locality is a phenomenon by which processes running more than once on the same processor improves performance for that process. Non-uniform memory access (“NUMA”) architectures attempt to maintain continuity among various processes and processors. NUMA architectures can also define process affinity for selected processors.
A thread is a component of a process that is executed to perform instructions. Threads can be aggregated and/or assembled into various types of bundles. Thread pools consist of various threads and/or sets of threads (sometimes also called thread sets) that can perform concurrent tasks. Thread sets associate and organize threads that are related. Threads belonging to a thread set generally perform the same or similar processing. Thread sets can be organized into hierarchical structures.
Multiple thread pools may exist in a middleware system. Each thread pool consists of a set of threads in a thread set. Various applications can use a thread pool and any one thread in the thread pool can run various applications and/or workflows.